#!/bin/bash
#1，安装git工具
#2，下载、安装


#####需求替换
TOOLS="git"
SOFT="vsftpd"
VER="3.0.2"
SER="vsftpd"

#PORT="80"
FIRESER="FTP"

IPLAN=$(hostname -I | awk -F " " '{printf $1}')
IPWAN=$(curl http://pv.sohu.com/cityjson 2>> /dev/null | awk -F '"' '{print $4}')







#####无需替换



##############创建用户/组（ftpgroup)---start##############
echo "创建FTP账户"
while true
do
    #判断用户名是否纯数字
    while true
    do
    read -p "请输入用户名(不能纯数字):" UNAME
        if [ "$UNAME" -gt 0 ] 2>/dev/null ;then 
        echo "用户名不能为纯数字！" 
        else
        break
        fi 
    done

    cat /etc/passwd | cut -d ':' -f1 | grep ^$UNAME$ > /dev/null
    #判断用户是否存在
    if [ $? -eq 0 ];then
    echo "用户已存在！"
    else


 
        #创建ftpgroup组
        GNAME=ftpgroup
        cat /etc/group | grep $GNAME > /dev/null
        if [ $? != 0  ] ; then
        groupadd $GNAME
        fi

        #创建ftp目录
        if [ ! -d /ftp ]; then
        mkdir /ftp
        chown -R :ftpgroup /ftp  
        fi


        #设置用户密码
        read -p "请输入密码(默认1234)：" UPWD
        UPWD=${UPWD:-1234}
        #创建ftp用户
        useradd  -s /sbin/nologin -g $GNAME -d /ftp/$UNAME -c "FTP用户" $UNAME
        echo "$UPWD" | passwd --stdin "$UNAME" > /dev/null
        break
fi
done
##############创建用户/组（ftpgroup)---end##############










GITEXT=".git"
FILEEXT="_init.sh"

TAG="."
TAG1=".*"
NUM="[0-9]"
RPMNAME=""

SHELLDIR="/opt/shell/"
SOFTDIR="/opt/"$SOFT"-"$VER"/"

GITADDR="https://gitee.com/ffing/"
GITDOWN=""$GITADDR""$SOFT"-"$VER""$GITEXT""

CONFNAME="vsftpd.conf"
FTPCONF=""$SOFTDIR""$CONFNAME""



#####安装TOOLS类
pName=$(rpm -qa | grep "^${TOOLS}${TAG}${NUM}${TAG}${NUM}")
if [ $? -eq 0 ]
then
       echo -e	"----------已存在，无需安装----------\n"${pName}""
	   echo
else
echo "----------正在安装 "${TOOLS}"……"
yum -y install $TOOLS
               if [ $? -eq 0 ]
               then
                        echo "----------安装完成 "${TOOLS}""
						echo
               else
                        echo -e "\e[41m >>>错误>>>安装失败 "${TOOLS}"\e[0m"
						echo
               fi
fi



#####下载、安装

#版本号类型
pName=$(rpm -qa | grep "^${SOFT}${TAG}${NUM}${TAG}${NUM}")
#名称类型
#pName=$(rpm -qa | grep "^${SOFT}${TAG1}${NAME}")
if [ $? -eq 0 ]
then
       echo -e	"----------已存在，无需安装----------\n"${pName}""
	   echo
else
		echo "----------开始下载 "${SOFT}"……"
		if [ ! -d $SOFTDIR ];then
		echo "创建${SOFT}下载目录 ${SOFTDIR}"
		git clone $GITDOWN $SOFTDIR 
		else
		echo "存在${SOFT}下载目录 ${SOFTDIR}"
		fi
		
		echo "----------正在安装 "${SOFT}"……"
		yum -y localinstall ${SOFTDIR}* 
        if [ $? -eq 0 ]
        then
        echo "----------安装完成 "${SOFT}""
		echo
        else
        echo -e "\e[41m >>>错误>>>安装失败 "${SOFT}"\e[0m"
		echo
		fi
fi

#####覆盖配置文件
mv  /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak
cp /opt/vsftpd-3.0.2/vsftpd.conf /etc/vsftpd/vsftpd.conf


#####修改pam
sed -i '4s/^/#/' /etc/pam.d/vsftpd


#添加上面创建的ftp登录账号(白名单文件user_list)
echo "anonymous" >>/etc/vsftpd/user_list
echo "$UNAME" >> /etc/vsftpd/user_list
#创建chroot_list用户列表（允许切换用户目录）
touch /etc/vsftpd/chroot_list




#####开放防火墙端口
#echo "配置永久开放端口：$PORT"
echo "防火墙放行服务：$FIRESER"
sed -i "/\/zone/i   <service name=\"ftp\"\/>" /etc/firewalld/zones/public.xml
firewall-cmd --reload  > /dev/null 2>&1

#####selinux放行
echo "selinux放行服务：FTP"
setsebool -P ftpd_full_access=on > /dev/null 2>&1


#####重启服务
#echo "重启 $SER"
#kill -9 $(ps -ef|grep $SER |gawk '$0 !~/grep/ {print $2}' |tr -s '\n' ' ') >/dev/null 2>&1
systemctl enable $SER > /dev/null 2>&1
systemctl restart $SER


#####服务状态
ps -ef|grep $SER|grep -vE "grep|$$" >/dev/null
if [ $? -eq 0 ];then
        echo -e "\e[42m "${SER}" 			已经启动\e[0m"
else
		echo -e "\e[41m "${SER}" 			启动失败\e[0m"
fi
######
echo "=================================================="
echo "  FTP内网访问：ftp://"$IPLAN""
echo "  FTP外网访问：ftp://"$IPWAN""
echo "  FTP账号：$UNAME"
echo "  FTP密码：$UPWD"
echo "  注：匿名用户已启用，具有公共目录读+下载权限"
echo "=================================================="